package org.lcx.pipeline.bean;

/**
 * Pipeline返回对象<br>
 * 作用于运行时的整个chain
 */
public interface PipelineResult {
	/**
	 * 获取错误信息
	 * 
	 * @param pKey
	 * @return
	 */
	public Object getError(Object pKey);

	/**
	 * 添加错误信息
	 * 
	 * @param pKey
	 * @param pError
	 */
	public void addError(Object pKey, Object pError);

	/**
	 * 获取所有错误的key
	 * 
	 * @return
	 */
	public Object[] getErrorKeys();

	/**
	 * 获取所有错误的信息
	 * 
	 * @return
	 */
	public Object[] getErrors();

	/**
	 * 是否有错误信息
	 * 
	 * @return
	 */
	public boolean hasErrors();

	/**
	 * 移除指定key对应的错误信息
	 * 
	 * @param pKey
	 */
	public void removeError(Object pKey);

	/**
	 * 复制PipelineResult
	 * 
	 * @param pResult
	 */
	public void copyInto(PipelineResult pResult);
}
